package com.hdl.design.pattern.decorator;

/**
 * 类名 ConcreteDecoratorFirst
 * 描述 第一个具体装饰器，可以在实现装饰前后增加一些附加功能
 *
 * @author hedonglin
 * @version 1.0
 * @date 2019/9/25 10:24
 */
public class ConcreteDecoratorFirst extends AbstractDecorator {
    /**
     * 本类独有的功能，区别是哪个具体的装饰器
     */
    private String addedState;

    @Override
    public void operation() {
        // 先调用父类的添加职责方法，也就是添加了具体Component对象的operation方法，也就是添加父类的职责，然后再添加自己的职责。
        super.operation();

        // 添加附加功能，在装饰之后，打印第一个装饰器addedStat属性的值
        addedState = "New State First";

        System.out.println("具体的装饰器对象First操作" + addedState);
    }
}